﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using arcchallenge.configurator;
using arcchallenge.domainlogicboard;
using arcchallenge.filereader;
using arcchallenge.filewriter;
using arcchallenge.frontend;
using arcchallenge.rot13;

namespace arcchallenge.host
{
    class Program
    {
        static void Main(string[] args)
        {
            // Build
            var reader = new TextFileReader();
            var writer = new TextFileWriter();
            var trans = new Rot13Transformation();
            var domainLogicBoard = new DomainLogicBoard(reader, writer, trans);

            var frontend = new ConsoleFrontend();
            var config = new AppConfigAdapter();
            var mainboard = new MainBoard(frontend, domainLogicBoard, config);

            // Bind

            // Config
            mainboard.Configure(args);

            // Run
            mainboard.Run(args);
        }
    }
}
